/* @authors: Amannda Misael, André Gouvêa, Bruna Brandão, Juliana Silva, Raphael Rodrigues  */
/********************************************************************************************/
/************************ PROJETO J.A.B.A.R. - Tarefa 2 *************************************/
/************************ Assembly Version: 1.0.2204 ****************************************/
/********************************************************************************************/
package Emprestimo;

import Funcoes.Emprestimo;
import Funcoes.EmprestimoException;
import Funcoes.Pessoa;
import Funcoes.Sexo;
import java.util.Scanner;

public class Main {

    private static double validaSalario(String salario) {
        if (salario.isEmpty()) {
            System.err.print("\nSalario inválido: Campo não pode ser vazio!\n");
            return 0;
        }

        char[] temp = salario.toCharArray();

        for (int i = 0; i < temp.length; i++) {
            if (!Character.isDigit(temp[i]) && temp[i] != '.') {
                System.err.print("\nSalario inválido: Valor deve ser numérico!\n");
                return 0;
            }
        }

        double sal = Double.parseDouble(salario);

        if (sal > 0) {
            return sal;
        } else {
            System.err.println("\nSalario inválido: Valor deve ser maior que 0.\n");
            return 0;
        }
    }

    private static int validaIdade(String idade) {
        if (idade.isEmpty()) {
            System.err.print("\nIdade inválida: Campo não pode ser vazio!\n");
            return 0;
        }

        char[] temp = idade.toCharArray();

        for (int i = 0; i < temp.length; i++) {
            if (!Character.isDigit(temp[i])) {
                System.err.print("\nIdade inválida: Valor deve ser numérico!\n");
                return 0;
            }
        }

        int age = Integer.parseInt(idade);

        if (age > 0) {
            return age;
        } else {
            System.err.println("\nIdade inválida: Valor deve ser maior que 0.\n");
            return 0;
        }
    }

    public static void main(String[] args) {
        try {
            System.out.println("----- Tarefa PM 2: Emprestimo ----\n");
            Scanner input = new Scanner(System.in);
            double salario = 0.0;
            int idade = 0;
            Sexo sexo = null;

            do {
                System.out.print("Entre com a idade:");
                try {
                    idade = validaIdade(input.nextLine());
                } catch (Exception e) {
                    System.err.println(e.getMessage());
                }
            } while (idade == 0);

            do {
                System.out.print("Entre com o salario:");
                try {
                    salario = validaSalario(input.nextLine()); 
                } catch (Exception e) {
                    System.err.println(e.getMessage());
                }
            } while (salario == 0);

            do {
                System.out.print("Entre com o sexo:");
                try {
                    sexo = Sexo.getSexo(input.next());
                } catch (Exception e) {
                    System.err.println(e.getMessage());
                }
            } while (sexo == null);
            
            Pessoa p1 = new Pessoa(sexo, idade, salario);

            Emprestimo e1 = new Emprestimo();
            double emprestimo = e1.calculaValorMaximo(p1);
            System.out.print("Valor Máximo de Emprestimo: ");
            System.out.printf("%.2f\n", emprestimo);

        } catch (EmprestimoException e) {
            System.err.println(e.getMessage());
        }
    }
}
